#include "CreadorJugador.h"

CreadorJugador::CreadorJugador(bool atachado) :
		Thread(atachado) {
	this->torneo = NULL;
	this->clientId = -1;
}

CreadorJugador::~CreadorJugador() {
}

void CreadorJugador::run() {
	this->recibirPeticion();
	pthread_exit(0);
}

void CreadorJugador::recibirPeticion() {
	//Obtengo los datos de la peticion de un cliente.
	t_jugador* jugador = (t_jugador*) this->torneo->getSocket()->read(sizeof(t_jugador), this->clientId);
	//Inicializo los datos del jugador
	this->inicializarJugador(*jugador, this->clientId);
	//enlisto al jugador en el ranking
	this->torneo->enlistarJugadorRanking(jugador);
	//Lo encolo en la lista de jugadores disponibles.
	this->torneo->enlistarJugadorDisponible(jugador);
}

void CreadorJugador::inicializarJugador(t_jugador& jugador, int clientId) {
	jugador.conectado = true;
	jugador.puntaje = 0;
	jugador.ranking = -1;
	jugador.socket_id = clientId;
}

Torneo*& CreadorJugador::getTorneo() {
	return torneo;
}

void CreadorJugador::setTorneo(Torneo* torneo) {
	this->torneo = torneo;
}

int CreadorJugador::getClientId() const {
	return clientId;
}

void CreadorJugador::setClientId(int clientId) {
	this->clientId = clientId;
}
